home *** CD-ROM | disk | FTP | other *** search
/ Freelog 125 / Freelog_MarsAvril2015_No125.iso / Musique / Quod Libet / quodlibet-3.3.0-installer.exe / bin / quodlibet / qltk / dbus_.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2014-12-31  |  5KB  |  132 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.7)
  3.  
  4. import dbus
  5. import dbus.service as dbus
  6. from dbus import DBusException
  7. from quodlibet.util import dbusutils
  8. from quodlibet.parse import Query
  9. from quodlibet.qltk.songlist import SongList
  10. from quodlibet.util.path import fsdecode
  11.  
  12. class DBusHandler(dbus.service.Object):
  13.     
  14.     def __init__(self, player, library):
  15.         
  16.         try:
  17.             self.library = library
  18.             bus = dbus.SessionBus()
  19.             name = dbus.service.BusName('net.sacredchao.QuodLibet', bus = bus)
  20.             path = '/net/sacredchao/QuodLibet'
  21.             super(DBusHandler, self).__init__(name, path)
  22.         except DBusException:
  23.             pass
  24.  
  25.         player.connect('song-started', self._DBusHandler__song_started)
  26.         player.connect('song-ended', self._DBusHandler__song_ended)
  27.         player.connect(('paused',), (lambda player: self.Paused()))
  28.         player.connect(('unpaused',), (lambda player: self.Unpaused()))
  29.         self._player = player
  30.  
  31.     
  32.     def __dict(self, song):
  33.         dict = { }
  34.         for key, value in { }.items():
  35.             if not isinstance(value, basestring):
  36.                 value = unicode(value)
  37.             elif isinstance(value, str):
  38.                 value = fsdecode(value)
  39.             dict[key] = dbusutils.dbus_unicode_validate(value)
  40.         if song:
  41.             dict['~uri'] = song('~uri')
  42.         return dict
  43.  
  44.     
  45.     def __song_started(self, player, song):
  46.         if song is not None:
  47.             song = self._DBusHandler__dict(song)
  48.             self.SongStarted(song)
  49.  
  50.     
  51.     def __song_ended(self, player, song, skipped):
  52.         if song is not None:
  53.             song = self._DBusHandler__dict(song)
  54.             self.SongEnded(song, skipped)
  55.  
  56.     
  57.     def SongStarted(self, song):
  58.         pass
  59.  
  60.     SongStarted = dbus.service.signal('net.sacredchao.QuodLibet')(SongStarted)
  61.     
  62.     def SongEnded(self, song, skipped):
  63.         pass
  64.  
  65.     SongEnded = dbus.service.signal('net.sacredchao.QuodLibet')(SongEnded)
  66.     
  67.     def Paused(self):
  68.         pass
  69.  
  70.     Paused = dbus.service.signal('net.sacredchao.QuodLibet')(Paused)
  71.     
  72.     def Unpaused(self):
  73.         pass
  74.  
  75.     Unpaused = dbus.service.signal('net.sacredchao.QuodLibet')(Unpaused)
  76.     
  77.     def GetPosition(self):
  78.         return self._player.get_position()
  79.  
  80.     GetPosition = dbus.service.method('net.sacredchao.QuodLibet')(GetPosition)
  81.     
  82.     def IsPlaying(self):
  83.         return not (self._player.paused)
  84.  
  85.     IsPlaying = dbus.service.method('net.sacredchao.QuodLibet')(IsPlaying)
  86.     
  87.     def CurrentSong(self):
  88.         return self._DBusHandler__dict(self._player.song)
  89.  
  90.     CurrentSong = dbus.service.method('net.sacredchao.QuodLibet')(CurrentSong)
  91.     
  92.     def Next(self):
  93.         self._player.next()
  94.  
  95.     Next = dbus.service.method('net.sacredchao.QuodLibet')(Next)
  96.     
  97.     def Previous(self):
  98.         self._player.previous()
  99.  
  100.     Previous = dbus.service.method('net.sacredchao.QuodLibet')(Previous)
  101.     
  102.     def Pause(self):
  103.         self._player.paused = True
  104.  
  105.     Pause = dbus.service.method('net.sacredchao.QuodLibet')(Pause)
  106.     
  107.     def Play(self):
  108.         if self._player.song is None:
  109.             self._player.reset()
  110.         else:
  111.             self._player.paused = False
  112.  
  113.     Play = dbus.service.method('net.sacredchao.QuodLibet')(Play)
  114.     
  115.     def PlayPause(self):
  116.         return self._player.paused
  117.  
  118.     PlayPause = dbus.service.method('net.sacredchao.QuodLibet')(PlayPause)
  119.     
  120.     def Query(self, query):
  121.         if query is not None:
  122.             
  123.             try:
  124.                 results = Query(query, star = SongList.star).search
  125.             except Query.error:
  126.                 pass
  127.  
  128.             return [ self._DBusHandler__dict(s) for s in self.library.itervalues() if results(s) ]
  129.  
  130.     Query = dbus.service.method('net.sacredchao.QuodLibet', in_signature = 's')(Query)
  131.  
  132.